package xin.codedream.codelog.dao;

import org.apache.ibatis.annotations.Param;
import xin.codedream.codelog.model.entity.User;

import java.util.Date;

/**
 * 用户数据访问层
 *
 * @author NGLSL
 * @date 2018/8/4
 */
public interface UserDao {
    /**
     * 根据用户名和用户信息查询信息
     *
     * @param userName 用户名
     * @param userPass 用户密码
     * @return User
     */
    User selectUserByUserNameAndUserPass(@Param("userName") String userName,
                                         @Param("userPass") String userPass);

    /**
     * 查找用户信息
     *
     * @return User
     */
    User selectUser();

    /**
     * 更新错误登录次数
     *
     * @param userId 用户id
     * @param count  次数
     */
    void updateLoginError(@Param("userId") Long userId, @Param("count") Integer count);

    /**
     * 更新登录功能状态
     *
     * @param userId 用户ID
     * @param status 功能状态
     */
    void updateLoginStatus(@Param("userId") Long userId, @Param("status") Integer status);

    /**
     * 更新登录时间
     *
     * @param userId 用户ID
     * @param date   登录时间
     */
    void updateLastLoginTime(@Param("userId") Long userId, @Param("date") Date date);
}